package cc.jq1024.infrastructure.persistent.dao;

import cc.jq1024.infrastructure.persistent.po.TaskPO;
import cc.jq1024.router.annotation.DBRouter;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * <p>
 * 任务表，发送MQ Mapper 接口
 * </p>
 *
 * @author lijiaqiang@ljq1024.cc
 * @since 2024-04-28
 */
@Mapper
public interface ITaskDao extends BaseMapper<TaskPO> {

    /** 插入Task任务 */
    void insertOne(TaskPO task);

    /** 更新数据库记录，task 任务表 - 成功 */
    @DBRouter
    void updateTaskSendMessageCompleted(TaskPO task);

    /** 更新数据库记录，task 任务表 - 失败 */
    @DBRouter
    void updateTaskSendMessageFail(TaskPO task);

    /**
     * 查询发送MQ失败和超时1分钟未发送的MQ
     *
     * @return 未发送的任务消息列表10条
     */
    List<TaskPO> queryNoSendMessageTaskList();
}
